package com.tulele.vtool.mapper;

import com.tulele.vtool.model.UserArticleTypeInfo;
import com.tulele.vtool.model.combinedEntity.CombinedUserArticleTypeInfo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;

import java.util.List;

@Component(value = "userArticleTypeInfoMapper")
public interface UserArticleTypeInfoMapper {

    /**
     * 查询用户文章的类型关注状态
     * @param userArticleTypeInfo
     * @return
     */
    UserArticleTypeInfo queryUserArticleTypeStatusInfo(UserArticleTypeInfo userArticleTypeInfo);

    /**
     * 添加用户关注的文章类型信息
     * @param userArticleTypeInfo
     * @return
     */
    int addUserArticleTypeInfo(UserArticleTypeInfo userArticleTypeInfo);

    /**
     * 更新用户关注的文章类型信息
     * @param userArticleTypeInfo
     * @return
     */
    int updateUserArticleInfo(UserArticleTypeInfo userArticleTypeInfo);

    /**
     * 修改用户所有文章类型有效状态
     * @param userArticleTypeInfo
     * @return
     */
    int updateUserArticleTypeEffectiveStatus(UserArticleTypeInfo userArticleTypeInfo);

    /**
     * 获取文章类型信息--包含用户关注的类型
     * @param userId
     * @return
     */
    List<CombinedUserArticleTypeInfo> queryUserArticleTypeInfo(Integer userId);

    /**
     * 获取用户个人关注文章类型
     * @param userId
     * @return
     */
    List<CombinedUserArticleTypeInfo> queryUserPersonalArticleTypeInfo(Integer userId);

    /**
     * 查询用户关注的文章类型
     * @param userId
     * @return
     */
    List<Integer> queryUserConcernArticleTypeInfo(@Param("userId")Integer userId);
}